/*
 * @author Sawyer(870756077@qq.com)
 */
export default {
    /**
     * 获取面包屑导航信息 尾递归
     *
     * @param {Array.<Object>} menu - 菜单列表
     * @param {Array.<String>} routeName - 路由列表
     * @param {Number} routeNameLen - 路由个数
     * @param {Number} index - 路由列表当前索引
     * @param {Array.<Object>} breadcrumb - 面包屑导航
     *
     * @return {Array.<Object>} breadcrumb - 面包屑导航
     */
    getBreadcrumb(
        menu = [],
        routeName,
        routeNameLen = routeName.length,
        index = 0,
        breadcrumb = []
    ) {
        let itemChildren = []
        for (let i = 0, l = menu.length; i < l; i++) {
            let item = menu[i]
            if (item.name === routeName[index]) {
                breadcrumb.push({
                    title: item.title,
                    path: item.path
                })
                itemChildren = item.children
            }
        }
        index++
        if (index < routeNameLen) {
            this.getBreadcrumb(
                itemChildren,
                routeName,
                routeNameLen,
                index,
                breadcrumb
            )
        }
        return breadcrumb
    },
    /**
     * 日期格式化
     *
     * @param {String} date - 时间
     * @param {String} format - 格式
     */
    formatDate(date, format) {
        if (!date) {
            return
        }
        let paddNum = function(num) {
            num += ''
            return num.replace(/^(\d)$/, '0$1')
        }
        // 指定格式字符
        let cfg = {
            // 年 : 4位
            yyyy: date.getFullYear(),
            // 年 : 2位
            yy: date.getFullYear().toString().substring(2),
            // 月 : 如果1位的时候不补0
            M: date.getMonth() + 1,
            MM: paddNum(date.getMonth() + 1), // 月 : 如果1位的时候补0
            d: date.getDate(), // 日 : 如果1位的时候不补0
            dd: paddNum(date.getDate()), // 日 : 如果1位的时候补0
            hh: paddNum(date.getHours()), // 时
            mm: paddNum(date.getMinutes()), // 分
            ss: paddNum(date.getSeconds()) // 秒
        }
        format || (format = 'yyyy-MM-dd hh:mm:ss')
        return format.replace(/([a-z])(\1)*/gi, function(m) {
            return cfg[m]
        })
    }
}
